#define _CRT_SECURE_NO_WARNINGS 1
//#include<stdio.h>
//#include<string.h>
//#include<assert.h>
//void solve(int a[],size_t len)
//{
//	int i = 0, j = len - 1;
//	while (i < j)
//	{
//		if (i % 2 == 0) {
//			++i;
//		}
//		if (j % 2 != 0) {
//			--j;
//		}
//		if (i < j) {
//			int tmp = a[i];
//			a[i] = a[j];
//			a[j] = tmp;
//			++i;
//			--j;
//		}
//	}
//}
//int main()
//{
//	int a[] = { 1,2,3,4,5,6,7,8,9,10 };
//	size_t len = sizeof(a) / sizeof(a[0]);
//	solve(a, len);
//	for (int i = 0; i < len; i++)
//	{
//		printf("%d ", a[i]);
//	}
//	return 0;
//}
//size_t my_strlen(const char* s)
//{
//	size_t count = 0;
//	assert(s != NULL);
//	while (*s)
//	{
//		count++;
//		s++;
//	}
//	return count;
//}
//int main()
//{
//	char s[] = "abcdef";
//	printf("%zd\n", my_strlen(s));
//	return 0;
//}
//char s[100000];
//int k;
//void spin()
//{
//	size_t len = strlen(s);
//	for (int i = 0; i < k; i++)
//	{
//		s[len++] = s[i];
//	}
//	s[len] = '\0';
//	for (int i = k; i <= len; i++)
//	{
//		s[i - k] = s[i];
//	}
//}
//int main()
//{
//	scanf("%s %d", s, &k);
//	spin();
//	printf("%s", s);
//	return 0;
//}
//#include<stdio.h>
//void test(int (*arr)[5], int r, int c)
//{
//
//}
//int main()
//{
//	int arr[3][5] = { {1,2,3,4,5},{2,3,4,5,6},{3,4,5,6,7} };
//	test(arr, 3, 5);
//	return 0;
//}
//#include<stdio.h>
//typedef int(*parr_t)[6];
//typedef int(*pf_t)(int, int);
//int Add(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	////&函数名和函数名都是函数的地址，没有区别
//	//printf("%p\n", &Add);
//	//printf("%p\n", Add);
//
//	//int (*pf)(int, int) = &Add; //pf 函数指针变量
//	////int (*pf)(int x, int y) = &Add; //x和y加不加都可以，没有任何意义
//	////int (*)(int,int) 函数指针类型
//
//	int (*pf)(int, int) = Add;
//	int ret = Add(4, 5);
//	int ret1 = (*pf)(4, 5);
//	int ret2 = pf(4, 5);
//	printf("ret = %d\n", ret);
//	printf("ret1 = %d\n", ret1);
//	printf("ret2 = %d\n", ret2);
//
//	return 0;
//}
#include<stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int Sub(int x, int y)
{
	return x - y;
}
int Mul(int x, int y)
{
	return x * y;
}
int Div(int x, int y)
{
	return x / y;
}
int main()
{
	int (*pf1)(int, int) = Add;
	int (*pf2)(int, int) = Sub;
	int (*pf3)(int, int) = Mul;
	int (*pf4)(int, int) = Div;
	int (*pf[4])(int, int) = { Add,Sub,Mul,Div };
	for (int i = 0; i < 4; i++)
	{
		int ret = pf[i](6, 2);
		printf("%d\n", ret);
	}
	return 0;
}